Software applications typically have a fixed set of rules that a user of the application may select. An email application, for example, may include, as a user-selectable option, a rule that forwards an email having a particular word in the subject line or a particular sender's email address. Or, for example, a word-processing application may include a rule that auto-corrects a selected misspelled word with a correct spelling of the word, such as correcting the misspelled word “thier” with the correct spelling “their.”
Application users, however, may wish to customize their applications beyond a fixed set of rules. These desired customizations often cannot be implemented without the application's designer creating or altering code of the application. Because of this, desired customizations are time consuming and expensive for application designers to create. Furthermore, the number of customizations can be as numerous as the number of users themselves, making it impractical to address all but a few of the most-commonly requested customizations.